import Vue from 'vue'
import Vuex from 'vuex'
// 菜单状态管理
import menu from './modules/menu'
// 角色状态管理
import role from './modules/role'
// 管理员状态管理
import admin from './modules/admin'
// 商品分类
import cate from './modules/cate'
// 商品规格
import specs from './modules/specs'
// 商品管理
import goods from './modules/goods'
// 商品管理
import banner from './modules/banner'
// 会员管理
import member from './modules/member'
// 秒杀管理
import seckill from './modules/seckill'
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    userinfo: sessionStorage.getItem('userinfo') ? JSON.parse(sessionStorage.getItem('userinfo')) : null
  },
  getters: {
    getUserinfo(state) {
      return state.userinfo
    }
  },
  mutations: {
    REQ_USER(state, payload) {
      // 如果 payload 为真，// 把payload 存储到会话存储中
      if (payload) {
        state.userinfo = payload
        sessionStorage.setItem('userinfo', JSON.stringify(payload))
      } else {
        // 如果 payload 为假，// 把payload 移除
        sessionStorage.removeItem('userinfo')
      }

    }
  },
  actions: {
    changeUserAction({
      commit
    }, payload) {
      commit('REQ_USER', payload)
    }
  },
  modules: {
    menu,
    role,
    admin,
    cate,
    specs,
    goods,
    banner,
    member,
    seckill
  }
})